<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" >

<title>Tikz绘图 | KALUO</title>
<meta name="description" content="温故而知新">

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
<link rel="shortcut icon" href="https://kaluo-zz.github.io/favicon.ico?v=1591084625855">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.10.0/katex.min.css">
<link rel="stylesheet" href="https://kaluo-zz.github.io/styles/main.css">



<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdn.bootcss.com/highlight.js/9.12.0/highlight.min.js"></script>

<link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" />



  </head>
  <body>
    <div id="app" class="main">

      <div class="sidebar" :class="{ 'full-height': menuVisible }">
  <div class="top-container" data-aos="fade-right">
    <div class="top-header-container">
      <a class="site-title-container" href="https://kaluo-zz.github.io">
        <img src="https://kaluo-zz.github.io/images/avatar.png?v=1591084625855" class="site-logo">
        <h1 class="site-title">KALUO</h1>
      </a>
      <div class="menu-btn" @click="menuVisible = !menuVisible">
        <div class="line"></div>
      </div>
    </div>
    <div>
      
        
          <a href="/" class="site-nav">
            首页
          </a>
        
      
        
          <a href="/archives" class="site-nav">
            归档
          </a>
        
      
        
          <a href="/tags" class="site-nav">
            标签
          </a>
        
      
        
          <a href="/post/about" class="site-nav">
            关于
          </a>
        
      
    </div>
  </div>
  <div class="bottom-container" data-aos="flip-up" data-aos-offset="0">
    <div class="social-container">
      
        
      
        
      
        
      
        
      
        
      
    </div>
    <div class="site-description">
      温故而知新
    </div>
    <div class="site-footer">
      Powered by <a href="https://github.com/getgridea/gridea" target="_blank">Gridea</a> | <a class="rss" href="https://kaluo-zz.github.io/atom.xml" target="_blank">RSS</a>
    </div>
  </div>
</div>


      <div class="main-container">
        <div class="content-container" data-aos="fade-up">
          <div class="post-detail">
            <h2 class="post-title">Tikz绘图</h2>
            <div class="post-date">2019-08-14</div>
            
            <div class="post-content">
              <ol>
<li>Tikz文档结构</li>
</ol>
<pre><code>\documentclass{article}
\usepackage{tikz}
\begin{document}
    \begin{tikzpicture}
     TikZ 命令
    \end{tikzpicture}
\end{document}
</code></pre>
<ol start="2">
<li>Tikz语法形式</li>
</ol>
<blockquote>
<p>\起始动作 (变量) [参数列表] 下一动作 (变量) [参数列表] 下一动作 (变量) [参数列表] ...</p>
</blockquote>
<ol start="3">
<li>直线<br>
画直线分为两步：给出起始点，给出到下一个点的路径。例如：</li>
</ol>
<pre><code>\draw (-1, 0) -- (1, 0);
</code></pre>
<p>上面第一个坐标 (-1, 0) 是 \draw 命令的参数（可以理解为“落笔点”），而第二个坐标 (1, 0) 是 &quot;--&quot; 命令的参数。不要把( -1, 0) -- (1, 0) 统一看做 \draw 命令的参数。上面这个命令可以理解为：<br>
（落笔到）(-1, 0) ，（画直线到） (1, 0)<br>
路径可以继续延伸下去，直到分号为止。例如</p>
<pre><code>\draw (-1, 0) -- (1, 0) -- (0, -1) -- (0, 1);
</code></pre>
<p>上面这个语句可以理解为：<br>
（落笔到）(-1, 0) ，（画直线到） (1, 0)，（画直线到）(0, -1)，（画直线到） (0, 1)<br>
“落笔”后仍然可以“抬笔”，只要中断画线的动作即可，比如:</p>
<pre><code>\draw (-1, 0) -- (1, 0)   (0, -1) -- (0, 1);
</code></pre>
<p>上面这个语句可以理解为：<br>
（落笔到）(-1, 0) ，（画直线到） (1, 0)，（落笔到）(0, -1) ，（画直线到） (0, 1)<br>
3. 椭圆和圆<br>
从 圆锥曲线的定义 可以知道：圆是椭圆的特殊情况，所以先研究 椭圆 怎么画。<br>
绘制椭圆，需要给出中心位置，作为 \draw 的参数，然后给出半轴长，放置于参数列表中，以方括号括起来：</p>
<pre><code>\draw (0, 0) ellipse [x radius=2cm, y radius=1cm];
</code></pre>
<p>画圆时的 radius 参数同时设定 x radius 和 y radius：</p>
<pre><code>\draw (0, 0) circle [radius=1cm];
</code></pre>
<ol start="4">
<li>矩形<br>
矩形的画法是，由落笔点和对角点确定一个矩形：</li>
</ol>
<pre><code>\draw (0, 0) rectangle (1, 1);
</code></pre>
<ol start="5">
<li>网格线<br>
网格线和矩形类似，也是确定落笔点和对角点，区别是一个画出外围的轮廓线，一个是画出矩形范围内的网格，默认的间隔宽度为1单位。</li>
</ol>
<pre><code>\draw (0, 0) grid (3, 3);
</code></pre>
<p>网格有一个重要的特性：</p>
<blockquote>
<p>无论起点和终点的位置在哪里，网格线总是通过原点 (0, 0)。</p>
</blockquote>
<ol start="6">
<li>画图样式<br>
从 网格线 一节就能看出， \draw 命令的样式参数可以简写，比如</li>
</ol>
<pre><code>\draw [color = red] (0,0) [radius=1cm] circle;
</code></pre>
<p>可以简写为</p>
<pre><code>\draw [red] (0,0) circle (1cm);
</code></pre>
<p>线宽的选项有以下几种：</p>
<ul>
<li>very thin</li>
<li>thin</li>
<li>thick</li>
<li>very thick</li>
<li>ultra thick<br>
ultra thin 的选项，对于分辨率不高的普通显示器，可能不能正常显示。而且没有 normal 这一选择，如果想表达 thin 和 thick 之间的中间值，要用 semithick.</li>
</ul>
<ol start="7">
<li>圆弧<br>
圆弧的命令是 arc，属性全部在方括号内，作用是从 \draw 的落笔点开始，画出一段椭圆弧，或者圆弧。比如</li>
</ol>
<pre><code>\draw (0,0) arc [start angle=-30, end angle=30, x radius=1cm, y radius=3cm];
\draw (0,0) arc [start angle=-30, end angle=30, x radius=3cm, y radius=1cm];
\draw (0,0) arc [start angle=-30, end angle=30, x radius=2cm, y radius=2cm];
</code></pre>
<p>和 圆 一样，可以用 radius 同时指定 x radius 和 y radius ：</p>
<pre><code>\draw (0,0) arc [start angle=-30, end angle=30, radius=2cm];
\draw (0,0) arc [start angle=-40, end angle=40, radius=3cm];
\draw (0,0) arc [start angle=-50, end angle=50, radius=4cm];
</code></pre>
<ol start="8">
<li>裁剪<br>
如果只想突出显示图形的局部，可以用某种路径（比如圆、矩形）作为剪切工具，命令是 \clip , 和 \draw 类似，唯一不同的是画完曲线后，将曲线外的部分裁掉。比如下面的语句：</li>
</ol>
<pre><code>\clip (0, 0) circle (1.9);
\draw (-1.5, -1.5) rectangle (1.5, 1.5);
</code></pre>
<p>\clip 命令还有一个可选参数 [draw] ， 启用后，将同时画出裁剪的边界，比如</p>
<pre><code>\clip[draw] (0, 0) circle (1.9);
\draw (-1.5, -1.5) rectangle (1.5, 1.5);
</code></pre>
<ol start="10">
<li>\插入外部图像</li>
</ol>
<pre><code>\node[inner sep=0pt] (russell) at (0,0)
    {\includegraphics[width=.25\textwidth]{bertrand_russell.jpg}};
</code></pre>
<p>参考：<br>
https://www.lfhacks.com/tech/tikz-1</p>

            </div>
            
              <div class="tag-container">
                
                  <a href="https://kaluo-zz.github.io/tag/4K6bnBDuJ" class="tag">
                    latex
                  </a>
                
                  <a href="https://kaluo-zz.github.io/tag/vf0AuUtmM5" class="tag">
                    tikz
                  </a>
                
                  <a href="https://kaluo-zz.github.io/tag/PzNHh70_8H" class="tag">
                    绘图
                  </a>
                
              </div>
            
            
              <div class="next-post">
                <div class="next">下一篇</div>
                <a href="https://kaluo-zz.github.io/post/ubuntu-zhi-cha-kan-cpu-shi-yong-qing-kuang">
                  <h3 class="post-title">
                    Ubuntu之查看CPU使用情况
                  </h3>
                </a>
              </div>
            

            

          </div>

        </div>
      </div>
    </div>

    <script src="https://unpkg.com/aos@next/dist/aos.js"></script>

<script type="application/javascript">

AOS.init();

hljs.initHighlightingOnLoad()

var app = new Vue({
  el: '#app',
  data: {
    menuVisible: false,
  },
})

</script>




  </body>
</html>
